From 58fb7522140073081f3d0f106c8e9a5028055df3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 3 Apr 2006 05:19:42 +0000 Subject: [PATCH] Avoid relocations. 2006-04-03 Matthias Clasen * gtk/gtkuimanager.c: Avoid relocations. --- ChangeLog | 2 ++ ChangeLog.pre-2-10 | 2 ++ gtk/gtkuimanager.c | 80 ++++++++++++++++++++++++++-------------------- 3 files changed, 49 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index dd30644286..eb7a9bc907 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2006-04-03 Matthias Clasen + * gtk/gtkuimanager.c: Avoid relocations. + * gtk/gtkxembed.c (_gtk_xembed_message_name): Reduce size of static buffer. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dd30644286..eb7a9bc907 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,7 @@ 2006-04-03 Matthias Clasen + * gtk/gtkuimanager.c: Avoid relocations. + * gtk/gtkxembed.c (_gtk_xembed_message_name): Reduce size of static buffer. diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c index a5c916073f..4ed119624c 100644 --- a/gtk/gtkuimanager.c +++ b/gtk/gtkuimanager.c @@ -2742,35 +2742,43 @@ mark_node_dirty (GNode *node) NODE_INFO (p)->dirty = TRUE; } -static const gchar *const open_tag_format[] = { - "%*s\n", - "%*s\n", - "%*s\n", - "%*s\n", - "%*s\n", - "%*s\n", - "%*s\n", - "%*s\n", - NULL, - NULL, - NULL, - NULL -}; +static const gchar * +close_tag_format (NodeType type) +{ + switch (type) + { + case NODE_TYPE_UNDECIDED: return "%*s\n"; + case NODE_TYPE_ROOT: return "%*s\n"; + case NODE_TYPE_MENUBAR: return "%*s\n"; + case NODE_TYPE_MENU: return "%*s\n"; + case NODE_TYPE_TOOLBAR: return "%*s\n"; + case NODE_TYPE_MENU_PLACEHOLDER: + case NODE_TYPE_TOOLBAR_PLACEHOLDER: return "%*s\n"; + case NODE_TYPE_POPUP: return "%*s\n"; + default: return NULL; + } +} static void print_node (GtkUIManager *self, @@ -2780,11 +2788,15 @@ print_node (GtkUIManager *self, { Node *mnode; GNode *child; + const gchar *open_fmt; + const gchar *close_fmt; mnode = node->data; - g_string_append_printf (buffer, open_tag_format[mnode->type], - indent_level, ""); + open_fmt = open_tag_format (mnode->type); + close_fmt = close_tag_format (mnode->type); + + g_string_append_printf (buffer, open_fmt, indent_level, ""); if (mnode->type != NODE_TYPE_ROOT) { @@ -2796,15 +2808,13 @@ print_node (GtkUIManager *self, g_quark_to_string (mnode->action_name)); } - g_string_append (buffer, - close_tag_format[mnode->type] ? ">\n" : "/>\n"); + g_string_append (buffer, close_fmt ? ">\n" : "/>\n"); for (child = node->children; child != NULL; child = child->next) print_node (self, child, indent_level + 2, buffer); - if (close_tag_format[mnode->type]) - g_string_append_printf (buffer, close_tag_format[mnode->type], - indent_level, ""); + if (close_fmt) + g_string_append_printf (buffer, close_fmt, indent_level, ""); } /** -- 2.30.2